/**
 * http缓存分为强缓存、协商缓存
 * 浏览器默认机制里，先看强缓存，命中强缓存则直接从本地内存或硬盘缓存里拿，没命中再去看协商缓存。
 * 1.强缓存
 *   强缓存相关的字段有：
 *   + Expires (http1.0协议里)  例： Expires: Mon, 26 Apr 2021 14:17:15 GMT
 *   + Cache-control (http1.1协议里) 例： Cache-control: max-age=2592000
 *   下次发送请求发现该请求缓存策略里面有这两个字段（优先看Cache-control，没有才看Expires），发现当前时间没到过期时间且本地缓存中有缓存文件，则命中强缓存，
 *   此时不会向服务端发请求了，直接本地取，状态码200。
 * 
 * 2.协商缓存
 *   如果没命中上面的强缓存 或者压根没设置强缓存，再看看有没有协商缓存。
 *   协商缓存相关字段：
 *   + Last-Modified (http1.0协议里) 例：Last-modified: Thu, 26 Mar 2020 05:36:55 GMT            
 *   + Etag (http1.1协议里) 例：Etag:"5e7c3f77-a89"
 *   Etag 优于 Last-Modified
 * 
 *   相对应的，在第二次及之后的请求头里会带上相应字段，以区分文件是否更新过：
 *   + Last-modified 对应匹配 If-modified-since  例：If-Modified-Since: Mon, 29 Mar 2021 09:54:56 GMT
 *   + Etag 对应匹配 If-None-Match 例：If-None-Match: "8816E9CCAC3A563641854CC5E364546B"
 *   如果匹配上则代表文件没更新，命中协商缓存，返回状态码304，直接从本地获取文件。
 *   如果没匹配上则代表文件更新过了，重新拿新文件，状态码200。
 */